#ifndef __BEZIER_SURFACE_H__
#define __BEZIER_SURFACE_H__

#include "point.h"

class BezierSurface{
    public:
        BezierSurface(int, double);
        ~BezierSurface();

        void addBezierPoint(int, int, Point*);
        Point *getControlPoint(int, int);

        Point getPoint(int, int);
        int getSizePoints();
        int getSizeControl();
        double getDiscretization();

//        void scale(double);
//        void scale(double, Point);
        void translate(Point);

        void calculate();

    private:
        int binomial(int, int);

        Point ***controlPoints;
        Point **points;
        int sizeControl, sizePoints;
        double discretization;
};

#endif
